function interp_data = linear_interpolate(audio_data, factor,fixed_point_cfg)
    % audio_data: 原始输入（行向量或列向量）
    % factor: 插值倍数，例如 64 表示插入63个点，每两个点之间总共变成64个点
    % 返回：插值后的数据 interp_data

    N = length(audio_data);
    interp_data = zeros(1, (N - 1) * factor + 1);  % 插值后总长度
    idx = 1;

    for i = 1:N-1
        x0 = audio_data(i);
        x1 = audio_data(i+1);
        step = (x1 - x0) / factor;

        for j = 0:factor-1
            interp_data(idx) = x0 + j * step;
            idx = idx + 1;
        end
    end

    % 加上最后一个点
    interp_data(idx) = audio_data(end);
end
